1. Field of the Invention
The present invention generally relates to computer network systems and more particularly to a module which permits simultaneous communication between a client program and multiple server programs without requiring different protocols or different versions of client or server programs.
2. Description of the Related Art
To enable communication between program C (client program) and program S (server program), possibly running on different execution domains (processors), a protocol P is used. Using the protocol P, the client program C may send a request Rq to the server program S, and the server program S is expected to return a response Rp. This abstraction describes a large number of widely available protocols (e.g., HTTP (Hyper-Text Transfer Protocol), RPC (Remote Procedure Calls), RMI (Remote Method Invocation), etc.). This situation, in which a client program C 10 uses a protocol P 11 to communicate with a server program S 12, is shown in FIG. 1. The protocol P, in this situation, is a one-to-one, synchronous protocol.
However, it is not convenient (or even practical) if the same task is to be performed on two, ten or perhaps even hundreds of instances of the server program S (which conceivably could be running on an equal number of network-connected processors) over a one-to-one protocol P. Therefore, a broadcast or multicast protocol P′ is used such a situation. Multicast and broadcast protocols distribute one message among a large number of nodes in a network and require a mechanism for handling multiple responses. In general, this is accomplished by modifying the client program C, server program S, or both, such that they work specifically with multicast protocol P′. Thus the conventional solution to permit such one-to-many situations requires modifying the client program C (and most likely the server program S) to use this protocol P′ and handle the multiple responses it may receive.